<?php
/**
 * Intreface DAO
 *
 * @author: http://phpdao.com
 * @date: 2012-05-30 11:06
 */
interface HsUserDAO{

	/**
	 * Get Domain object by primry key
	 *
	 * @param String $id primary key
	 * @Return HsUser 
	 */
	public function load($id);

	/**
	 * Get all records from table
	 */
	public function queryAll();
	
	/**
	 * Get all records from table ordered by field
	 * @Param $orderColumn column name
	 */
	public function queryAllOrderBy($orderColumn);
	
	/**
 	 * Delete record from table
 	 * @param hsUser primary key
 	 */
	public function delete($userID);
	
	/**
 	 * Insert record to table
 	 *
 	 * @param HsUser hsUser
 	 */
	public function insert($hsUser);
	
	/**
 	 * Update record in table
 	 *
 	 * @param HsUser hsUser
 	 */
	public function update($hsUser);	

	/**
	 * Delete all rows
	 */
	public function clean();

	public function queryByFirstName($value);

	public function queryByLastName($value);

	public function queryByUserName($value);

	public function queryByNickName($value);

	public function queryByEmail($value);

	public function queryBySex($value);

	public function queryByBirthDay($value);

	public function queryByZipCode($value);

	public function queryByVisitCount($value);

	public function queryByUserLevel($value);

	public function queryByRelationshipStatus($value);

	public function queryByCurrentStatus($value);

	public function queryByStatusTimestamp($value);

	public function queryByStatusCount($value);

	public function queryByMessageCount($value);

	public function queryByAlbumCount($value);

	public function queryBySelfDisclosure($value);

	public function queryByUserPwd($value);

	public function queryBySalt($value);


	public function deleteByFirstName($value);

	public function deleteByLastName($value);

	public function deleteByUserName($value);

	public function deleteByNickName($value);

	public function deleteByEmail($value);

	public function deleteBySex($value);

	public function deleteByBirthDay($value);

	public function deleteByZipCode($value);

	public function deleteByVisitCount($value);

	public function deleteByUserLevel($value);

	public function deleteByRelationshipStatus($value);

	public function deleteByCurrentStatus($value);

	public function deleteByStatusTimestamp($value);

	public function deleteByStatusCount($value);

	public function deleteByMessageCount($value);

	public function deleteByAlbumCount($value);

	public function deleteBySelfDisclosure($value);

	public function deleteByUserPwd($value);

	public function deleteBySalt($value);


}
?>